/**
 * @Company: 北京慧点科技有限公司 | www.smartdot.com.cn
 * @Copyright 1998-2021 © Smartdot Technologies Co., Ltd.
 */
package feizhou.untils.tools.json.bean;


import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

import java.util.ArrayList;
import java.util.List;


/**
 * 映射节点树
 *
 * @author <a href="920786312@qq.com">周飞</a>
 * @since 2023/11/8 11:27
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class FieldMappingTree {

    /**
     * 字段名称
     */
    private String fieldName;
    /**
     * 字段格式
     */
    private String fieldFormat;

    /**
     * 映射字段名称
     */
    private String mappingFieldName;
    /**
     * 映射字段格式
     */
    private String mappingFieldFormat;

    /**
     * 子映射节点树
     */
    private List<FieldMappingTree> childNodes;


    /**
     * 字段默认值，如果映射字段不存在，或者映射字段没有值，就使用默认值
     */
    private String fieldDefaultValue;

    /**
     * 映射字段值处理策略
     */
    private FieldStrategy fieldStrategy;

    /**
     * 全路径名称
     */
    private String fullPathName;


    public void add(FieldMappingTree tree) {
        if (childNodes == null) {
            childNodes = new ArrayList<>();
        }
        childNodes.add(tree);
    }

}
